from sqlalchemy import Table, Column, Integer, String
from sqlalchemy.orm import mapper
from database import metadata, db_session, init_db, engine
from sqlalchemy import ForeignKey
from sqlalchemy.orm import relationship, backref
from proyecto import Proyecto, proyecto
from usuario import Usuario, usuario
from tipoItem import TipoItem, tipoitem
from tipoCampo import TipoCampo, tipocampo

class AtributoTipo(object):
    """ Clase que define el modelo de la tabla atributos del tipo de item """
    
    query = db_session.query_property()

    def __init__(self, campo=None, tamanho=None):
        """ Metodo init """
        self.campo = campo
        self.tamanho = tamanho

    def __repr__(self):
        return self.campo

atributotipo = Table('atributotipo', metadata,
    Column('idatributotipo', Integer, primary_key=True),
    Column('campo', String(50)),
    Column('tamanho', Integer),
    Column('idtipoitem', Integer, ForeignKey('tipoitem.idtipoitem')),
    Column('idtipocampo', Integer, ForeignKey('tipocampo.idtipocampo'))
)

mapper(AtributoTipo, atributotipo, properties={
    'tipocampo' : relationship(TipoCampo, backref='tipocampo'),
    'tipoitem' : relationship(TipoItem, backref='atributos')
})
